home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - ProDOS / PRO050.dsk / CW.bas < prev    next >
BASIC Source File  |  2012-02-16  |  32KB  |  780 lines

  1. 10  GOSUB 62000
  2. 15 D$ =  CHR$(4)
  3. 20  PRINT D$;"PR#3"
  4. 100  DIM COD$(40),PAY$(40),TCOD$(40),TPAY$(40),CG$(40),TG$(40),BG$(40),TB$(40)
  5. 110  DIM TN%(60),DT$(60),CN$(60),AMT$(60),PY$(60),CTG$(60),ACT$(60),MEM$(60),P$(60)
  6. 120  DIM AAD$(60),BAD$(60),CAD$(60)
  7. 130  DIM R$(500),RA$(500),RO$(500)
  8. 140  DIM NB$(20),SI$(20)
  9. 1000  REM  FIND TIMEMASTER
  10. 1010 SLOT = 0
  11. 1020  FOR I = 1 TO 7
  12. 1030 ADDR = 12 *4096 +I *256
  13. 1040  IF  PEEK(ADDR) = 8  AND  PEEK(ADDR +1) = 120  AND  PEEK(ADDR +254) = 178  THEN SLOT = I:I = 7
  14. 1050  NEXT 
  15. 1060  IF SLOT < >0  THEN 2000
  16. 1200  REM  ENTER DATE MANUALLY
  17. 1210  HOME 
  18. 1220  HTAB 20: VTAB 3
  19. 1240  PRINT "ENTER TODAY'S DATE IN THE FOLLOWING FORM:"
  20. 1250  HTAB 36: VTAB 5: PRINT "07-04-76"
  21. 1260  HTAB 36: VTAB 9: INPUT "";DT$
  22. 1270  IF  LEN(DT$) < >8  THEN 1200
  23. 1280  IF  VAL( LEFT$(DT$,2)) >12  THEN 1200
  24. 1290  IF  VAL( LEFT$(DT$,2)) <1  THEN 1200
  25. 1300  IF  VAL( MID$ (DT$,4,2)) >31  THEN 1200
  26. 1310 BDT$ = DT$
  27. 1320 FC = 1: REM  NO CLOCK FLAG
  28. 1330  GOTO 3000
  29. 2000  REM  READ DATE
  30. 2010  PRINT D$;"IN#"SLOT: PRINT D$;"PR#"SLOT
  31. 2020  INPUT ":";CK$
  32. 2030  PRINT D$;"IN#0": PRINT D$;"PR#0"
  33. 2040  PRINT D$;"PR#3"
  34. 2050 DT$ =  MID$ (CK$,3,2) +"-" + MID$ (CK$,6,2) +"-" + MID$ (CK$,9,2)
  35. 2055 BDT$ = DT$
  36. 2060  GOTO 3000
  37. 2200  REM  READ TIME
  38. 2205  IF FC = 1  THEN TM$ = "": RETURN 
  39. 2210  PRINT D$;"IN#"SLOT: PRINT D$;"PR#"SLOT
  40. 2220  INPUT ":";CK$
  41. 2230  PRINT D$;"IN#0": PRINT D$;"PR#0"
  42. 2240  PRINT D$;"PR#3"
  43. 2260 TM$ =  MID$ (CK$,12,2) +":" + MID$ (CK$,15,2)
  44. 2270 X =  VAL( MID$ (CK$,12,2))
  45. 2280  IF X <12  THEN TM$ = TM$ +"  A.M.": RETURN 
  46. 2290  IF X <13  THEN TM$ = TM$ +"  P.M.": RETURN 
  47. 2300 X = X -12:X$ =  STR$(X):TM$ = X$ + RIGHT$(TM$,3) +"  P.M."
  48. 2310  RETURN 
  49. 3000  GOSUB 15000: GOSUB 22000
  50. 3100  REM  LOAD ONGOING VALUES
  51. 3110  PRINT D$;"OPEN /RAM/ONGOING.DATA"
  52. 3120  PRINT D$;"READ /RAM/ONGOING.DATA"
  53. 3130  INPUT "";WT%: INPUT "";BL$: INPUT "";WCN$
  54. 3140  PRINT D$;"CLOSE /RAM/ONGOING.DATA"
  55. 3145 FTN% = WT%:FBL$ = BL$:FWCN$ = WCN$
  56. 3147 KFTN% = WT%: REM  PREVENT DOUBLE SAVE IN RPT
  57. 3150 BL =  VAL(BL$)
  58. 3700  REM  STARTING PERMANENT VALUES
  59. 3800 Q = 0:F = 0:K = 0:R$ = " ":U = 0:TN%(Q) = 0
  60. 4000  REM  MAIN MENU
  61. 4002  GOSUB 2200
  62. 4005  HOME 
  63. 4010  HTAB 31: VTAB 1: PRINT "CHECKWRITER--MAIN MENU"
  64. 4020  HTAB 30: PRINT "========================"
  65. 4030  HTAB 30: VTAB 5: PRINT "B)  BALANCE CHECKBOOK"
  66. 4035  HTAB 30: PRINT "C)  RECURRING TRANSACTIONS"
  67. 4040  HTAB 30: PRINT "E)  ENTRIES TO CHECKWRITER"
  68. 4050  HTAB 30: PRINT "G)  CATEGORIES"
  69. 4052  HTAB 30: PRINT "I)  LIST CURRENT TRANSACTIONS"
  70. 4055  HTAB 30: PRINT "K)  CALCULATOR"
  71. 4060  HTAB 30: PRINT "L)  LOAD NEW DATA DISK"
  72. 4070  HTAB 30: PRINT "N)  NEW DATA OR NEW DATA DISK"
  73. 4075  HTAB 30: PRINT "O)  CHECK FOR OVERDUE TRANSACTIONS"
  74. 4080  HTAB 30: PRINT "P)  PRINT CHECKS"
  75. 4090  HTAB 30: PRINT "Q)  QUIT"
  76. 4100  HTAB 30: PRINT "R)  REPORTS"
  77. 4110  HTAB 30: PRINT "S)  SAVE DATA"
  78. 4120  HTAB 30: PRINT "U)  BUDGETS"
  79. 4125  HTAB 69: VTAB 23: PRINT TM$
  80. 4127  IF FO = 1  THEN FO = 0: HTAB 26: VTAB 20: PRINT "THERE ARE ";: INVERSE : PRINT " OVERDUE ";: NORMAL : PRINT " TRANSACTIONS": HTAB 29: PRINT "THEY CAN BE VIEWED AT <O>"
  81. 4130  HTAB 40: VTAB 23: GET X$
  82. 4140  IF X$ = "U"  OR X$ = "u"  THEN 35000
  83. 4145  IF X$ = "C"  OR X$ = "c"  THEN 10000
  84. 4150  IF X$ = "E"  OR X$ = "e"  THEN 5000
  85. 4160  IF X$ = "G"  OR X$ = "g"  THEN 20000
  86. 4162  IF X$ = "K"  OR X$ = "k"  THEN 40000
  87. 4165  IF X$ = "I"  OR X$ = "i"  THEN 31000
  88. 4170  IF X$ = "B"  OR X$ = "b"  THEN 32000
  89. 4175  IF X$ = "L"  OR X$ = "l"  THEN 45000
  90. 4180  IF X$ = "N"  OR X$ = "n"  THEN 50000
  91. 4190  IF X$ = "P"  OR X$ = "p"  THEN 33000
  92. 4200  IF X$ = "Q"  OR X$ = "q"  THEN 58000
  93. 4210  IF X$ = "R"  OR X$ = "r"  THEN 30000
  94. 4220  IF X$ = "S"  OR X$ = "s"  THEN FS = 1: GOTO 55000
  95. 4230  IF X$ = "O"  OR X$ = "o"  THEN  GOSUB 16000
  96. 4240  IF X$ < >"s"  THEN 4000
  97. 5000  REM  CHECKWRITER
  98. 5002  GOSUB 2200
  99. 5005  HOME 
  100. 5010  HTAB 35: VTAB 1: PRINT "CHECKWRITER"
  101. 5030  HTAB 34: VTAB 2: PRINT "============="
  102. 5050  HTAB 2: VTAB 4: PRINT "TRANSACTION # "
  103. 5060  HTAB 48: VTAB 4: PRINT "BALANCE $ ";BL$
  104. 5100  VTAB 5
  105. 5110  PRINT "--------------------------------------------------------------------------------"
  106. 5120  HTAB 2: VTAB 6: PRINT "DATE:"
  107. 5140  HTAB 50: VTAB 6: PRINT "CHECK # "
  108. 5160  HTAB 49: VTAB 8: PRINT "AMOUNT $ "
  109. 5180  HTAB 10: VTAB 10: PRINT "PAY TO:"
  110. 5200  HTAB 2: PRINT "ADDRESS LINE 1:
  111. 5220  HTAB 2: PRINT "ADDRESS LINE 2:"
  112. 5240  HTAB 2: PRINT "ADDRESS LINE 3:"
  113. 5260  HTAB 2: VTAB 15: PRINT "CAT:"
  114. 5270  HTAB 18: VTAB 15: PRINT "ACT#:"
  115. 5280  HTAB 63: VTAB 15: PRINT "MEMO:"
  116. 5295  PRINT "--------------------------------------------------------------------------------"
  117. 5297  IF FA = 1  THEN FA = 0: GOTO 5400
  118. 5300  HTAB 25: VTAB 17: PRINT "C)  ENTER RECURRING TRANSACTION"
  119. 5320  HTAB 25: PRINT "E)  ENTER NEW TRANSACTION"
  120. 5325  HTAB 25: PRINT "K)  CALCULATOR"
  121. 5330  HTAB 25: PRINT "M)  MAIN MENU"
  122. 5340  HTAB 25: PRINT "P)  PRINT CHECKS"
  123. 5350  HTAB 25: PRINT "R)  REPORTS"
  124. 5352  HTAB 25: PRINT "T)  EDIT CURRENT TRANSACTION"
  125. 5355  HTAB 69: VTAB 23: PRINT TM$
  126. 5360  HTAB 1: VTAB 17: GET X$
  127. 5365  IF X$ = "C"  OR X$ = "c"  THEN 5400
  128. 5370  IF X$ = "E"  OR X$ = "e"  THEN 7000
  129. 5372  IF X$ = "K"  OR X$ = "k"  THEN FK = 1: GOTO 40000
  130. 5375  IF X$ = "M"  OR X$ = "m"  THEN 4000
  131. 5380  IF X$ = "P"  OR X$ = "p"  THEN 33000
  132. 5385  IF X$ = "T"  OR X$ = "t"  THEN 9000
  133. 5387  IF X$ = "R"  OR X$ = "r"  THEN 30000
  134. 5390  IF X$ < >"r"  THEN 5360
  135. 5400  VTAB 17: CALL  -958
  136. 5410  HTAB 9: VTAB 19: PRINT "ENTER REC.TRANSACTION CODE, <RTN> TO SEE LIST, OR <ESC> TO EXIT"
  137. 5420 IN$ = ""
  138. 5430  HTAB 39: VTAB 21: PRINT IN$;
  139. 5440  GET X$
  140. 5450  IF X$ =  CHR$(13)  THEN  GOSUB 18000:FA = 1: GOTO 5000
  141. 5460  IF X$ =  CHR$(27)  THEN IN$ = "": GOTO 5000
  142. 5462  IF X$ =  CHR$(8)  AND  LEN(IN$) = 1  THEN 5420
  143. 5465  IF X$ =  CHR$(8)  AND  LEN(IN$) = 2  THEN IN$ =  LEFT$(IN$, LEN(IN$) -1): HTAB 40: GOTO 5440
  144. 5466  IF X$ =  CHR$(21)  OR X$ =  CHR$(8)  THEN 5440
  145. 5467  IF X$ =  CHR$(10)  OR X$ =  CHR$(11)  THEN 5440
  146. 5468 IN$ = IN$ +X$
  147. 5470  IF  LEN(IN$) = 3  THEN COD$ = IN$: GOTO 5490
  148. 5480  GOTO 5430
  149. 5490  HTAB 39: VTAB 21: PRINT COD$
  150. 5500  FOR R = 1 TO 40
  151. 5510  IF COD$ = COD$(R)  THEN 5540
  152. 5520  NEXT 
  153. 5530  GOTO 5400
  154. 5540  PRINT D$;"OPEN /RAM/RECUR.TRANS,L$96"
  155. 5550  PRINT D$;"READ /RAM/RECUR.TRANS,R";R
  156. 5560  INPUT "";COD$,DD$,FRQ$,AMT$
  157. 5570  VTAB 14: GOSUB 63000: LET PY$ = IN$
  158. 5580  VTAB 14: GOSUB 63000: LET AAD$ = IN$
  159. 5590  VTAB 14: GOSUB 63000: LET BAD$ = IN$
  160. 5600  VTAB 14: GOSUB 63000: LET CAD$ = IN$
  161. 5610  VTAB 14: INPUT "";CTG$,ACT$
  162. 5620  PRINT D$;"CLOSE /RAM/RECUR.TRANS"
  163. 5630 MEM$ = ""
  164. 5700  REM  PRINT RECURRING TRANSACTION
  165. 5710  HTAB 15: VTAB 4: PRINT WT%
  166. 5715 DT$ = BDT$
  167. 5720  HTAB 8: VTAB 6: PRINT DT$
  168. 5730 CN$ = WCN$
  169. 5740  IF ACT$ = "*"  THEN CN$ = "*"
  170. 5750  HTAB 58: VTAB 6: PRINT CN$
  171. 5760 AMT =  VAL(AMT$):OMT$ = AMT$
  172. 5770 J = AMT *100:Z$ =  STR$( INT(J +.01)): IF  LEN(Z$) = 1  THEN Z$ = "0" +Z$
  173. 5780  HTAB 58: VTAB 8: PRINT  INT(AMT +.001)"." RIGHT$(Z$,2)
  174. 5790  IF CN$ = "*"  THEN AMT$ = "-" +AMT$
  175. 5800  HTAB 18: VTAB 10: PRINT PY$
  176. 5810  HTAB 18: PRINT AAD$
  177. 5820  HTAB 18: PRINT BAD$
  178. 5830  HTAB 18: PRINT CAD$
  179. 5840  HTAB 7: VTAB 15: PRINT CTG$
  180. 5850  HTAB 24: VTAB 15: PRINT ACT$
  181. 5870  VTAB 17: CALL  -958
  182. 5880  HTAB 69: VTAB 23: PRINT TM$
  183. 5890  HTAB 7: VTAB 19: PRINT "PRESS <T> TO EDIT, <`> TO ENTER TRANSACTION OR <ANY KEY> TO  EXIT"
  184. 5900  HTAB 40: VTAB 21: GET X$
  185. 5910  IF X$ = "`"  OR X$ = "~"  THEN F = 1: GOTO 8000
  186. 5920  IF X$ = "T"  OR X$ = "t"  THEN 7370
  187. 5930  GOTO 5000
  188. 7000  REM  INPUTS
  189. 7010  HTAB 16: VTAB 4: PRINT WT%
  190. 7020  HTAB 8: VTAB 6: PRINT DT$
  191. 7030 H = 8:V = 6: GOSUB 60000: LET DT$ = IN$
  192. 7032  IF FF = 2  THEN FF = 0: GOTO 5000
  193. 7035  IF  LEN(DT$) < >8  THEN DT$ = BDT$: HTAB 8: VTAB 6: PRINT DT$
  194. 7040  HTAB 58: VTAB 6: PRINT WCN$
  195. 7050  HTAB 50: VTAB 6: PRINT "CHECK # "
  196. 7055 H = 58:V = 6: GOSUB 60000: LET CN$ = IN$
  197. 7057  IF FF = 2  THEN FF = 0: GOTO 5000
  198. 7058  HTAB H: VTAB V: PRINT CN$;: CALL  -868
  199. 7060  IF  LEN(CN$) = 0  THEN CN$ = WCN$: HTAB 58: VTAB 6: PRINT CN$
  200. 7070 H = 58:V = 8: GOSUB 60000:AMT$ = IN$
  201. 7075  IF FF = 2  THEN FF = 0: GOTO 5000
  202. 7080 AMT =  VAL(AMT$)
  203. 7090 J = AMT *100:Z$ =  STR$( INT(J +.01)): IF  LEN(Z$) = 1  THEN Z$ = "0" +Z$
  204. 7110  HTAB 58: VTAB 8: PRINT  INT(AMT +.001)"." RIGHT$(Z$,2)
  205. 7120  IF CN$ = "*"  THEN AMT$ = "-" +AMT$
  206. 7130 H = 18:V = 10: GOSUB 60000: LET PY$ = IN$
  207. 7132  IF FF = 2  THEN FF = 0: GOTO 5000
  208. 7135  IF  LEN(IN$) >35  THEN  HTAB 18: VTAB 10: PRINT " TOO LONG--35 SPACES MAX--TRY AGAIN "; SPC( 26): GET X$: HTAB 18: VTAB 10: CALL  -868: GOTO 7130
  209. 7140 H = 18:V = 11: GOSUB 60000: LET AAD$ = IN$
  210. 7145  IF FF = 2  THEN FF = 0: GOTO 5000
  211. 7150 H = 18:V = 12: GOSUB 60000: LET BAD$ = IN$
  212. 7155  IF FF = 2  THEN FF = 0: GOTO 5000
  213. 7160 H = 18:V = 13: GOSUB 60000: LET CAD$ = IN$
  214. 7165  IF FF = 2  THEN FF = 0: GOTO 5000
  215. 7210 H = 7:V = 15: GOSUB 61000
  216. 7220  IF FF = 2  THEN FF = 0: GOTO 5000
  217. 7240 H = 24:V = 15: GOSUB 60000: LET ACT$ = IN$
  218. 7250  IF FF = 2  THEN FF = 0: GOTO 5000
  219. 7260  IF  LEN(IN$) >25  THEN  HTAB 24: VTAB 15: PRINT " TOO LONG--25 SPACES MAX--TRY AGAIN    MEMO:"; SPC( 12): GET X$: HTAB 24: VTAB 15: CALL  -868: HTAB 63: VTAB 15: PRINT "MEMO:": GOTO 7240
  220. 7310 H = 69:V = 15: GOSUB 60000: LET MEM$ = IN$
  221. 7315  IF FF = 2  THEN FF = 0: GOTO 5000
  222. 7317  IF  LEN(MEM$) >10  THEN  HTAB 69: VTAB 15: PRINT "10 SPACE MAX": VTAB 16: FOR X = 1 TO 79: PRINT "-";: NEXT : GET X$: HTAB 69: VTAB 15: CALL  -868: GOTO 7310
  223. 7320  HTAB 2: VTAB 17: CALL  -958
  224. 7330  HTAB 17: VTAB 19: PRINT "PRESS <`> TO ENTER TRANSACTION OR <ANY KEY> TO  EXIT"
  225. 7340  HTAB 40: VTAB 21: GET X$
  226. 7350  IF X$ = "`"  OR X$ = "~"  THEN 8000
  227. 7360  GOTO 5000
  228. 7370  REM  INPUT FOR RECURRING TRANSACTION
  229. 7380  HTAB 58: VTAB 8: INPUT "";AMT$
  230. 7390 AMT =  VAL(AMT$)
  231. 7400 J = AMT *100:Z$ =  STR$( INT(J +.01)): IF  LEN(Z$) = 1  THEN Z$ = "0" +Z$
  232. 7420  HTAB 58: VTAB 8: PRINT  INT(AMT +.001)"." RIGHT$(Z$,2)
  233. 7430  IF CN$ = "*"  THEN AMT$ = "-" +AMT$
  234. 7440 H = 69:V = 15: GOSUB 60000
  235. 7445  IF FF = 2  THEN FF = 0: GOTO 5000
  236. 7450 MEM$ = IN$
  237. 7460  IF  LEN(MEM$) >10  THEN  HTAB 69: VTAB 15: PRINT "10 SPACE MAX": VTAB 16: FOR X = 1 TO 79: PRINT "-";: NEXT : GET X$: HTAB 69: VTAB 15: CALL  -868: GOTO 7440
  238. 7520  VTAB 17: CALL  -958
  239. 7530  HTAB 17: VTAB 19: PRINT "PRESS <`> TO ENTER TRANSACTION OR <ANY KEY> TO EXIT"
  240. 7540  HTAB 40: VTAB 21: GET X$
  241. 7550  IF X$ = "`"  OR X$ = "~"  THEN F = 1: GOTO 8000
  242. 7560  GOTO 5000
  243. 8000  REM  ENTER VARIABLES
  244. 8020 TN%(Q) = WT%:DT$(Q) = DT$:CN$(Q) = CN$:AMT$(Q) = AMT$:PY$(Q) = PY$:P$(Q) = " ":AAD$(Q) = AAD$:BAD$(Q) = BAD$:CAD$(Q) = CAD$:CTG$(Q) = CTG$:ACT$(Q) = ACT$:MEM$(Q) = MEM$
  245. 8050  IF CN$ < >WCN$  THEN WCN =  VAL(WCN$) -1:WCN$ =  STR$(WCN)
  246. 8070 WT% = WT% +1:Q = Q +1:WCN =  VAL(WCN$) +1:WCN$ =  STR$(WCN)
  247. 8080 BL = BL - VAL(AMT$)
  248. 8090 B = BL
  249. 8100  IF BL <0  THEN B = BL * -1
  250. 8110 A =  INT(B +.001):A$ =  STR$(A)
  251. 8120 J = B *100:B$ =  STR$( INT(J +.01)): IF  LEN(B$) = 1  THEN B$ = "0" +B$
  252. 8130 BL$ = A$ +"." + RIGHT$(B$,2)
  253. 8140  IF BL <0  THEN BL$ = "-" +BL$
  254. 8145  IF F = 1  THEN AMT$ = OMT$: IF DD$ = "irregular"  THEN 12000
  255. 8150  IF F = 1  THEN MO =  VAL( LEFT$(DD$,2)) + VAL(FRQ$):MO = .01 *MO:MO$ =  STR$(MO):MO$ =  RIGHT$(MO$,2):DD$ = MO$ + RIGHT$(DD$,6)
  256. 8151  IF F = 1  THEN F = 1: IF MO$ = ".1"  THEN MO$ = "10":DD$ = MO$ + RIGHT$(DD$,6)
  257. 8152  IF F = 1  THEN F = 1: IF  VAL(MO$) >12  THEN MO = .01 *( VAL(MO$) -12):MO$ =  STR$(MO):MO$ =  RIGHT$(MO$,2):YR =  VAL( RIGHT$(DD$,2)) +1:YR$ =  STR$(YR):DD$ = MO$ +"-" + MID$ (DD$,4,2) +"-" +YR$
  258. 8155  IF F = 1  THEN 12000
  259. 8160  GOTO 5000
  260. 9000  REM  REDO
  261. 9005  VTAB 17: CALL  -958
  262. 9010  HTAB 17: VTAB 19: PRINT "ENTER # OF TRANSACTION TO REDO OR <RTN> TO EXIT"
  263. 9020  HTAB 40: VTAB 21: INPUT "";NUM$:NUM =  VAL(NUM$)
  264. 9025  IF  LEN(NUM$) = 0  THEN 5000
  265. 9030  FOR I = 0 TO 59
  266. 9040  IF TN%(I) = NUM  THEN 9070
  267. 9050  NEXT 
  268. 9060  VTAB 17: CALL  -958: HTAB 20: VTAB 19: PRINT "TRANSACTION # ";NUM;" IS NOT A CURRENT TRANSACTION.": HTAB 23: VTAB 20: PRINT "IT CAN BE EDITED AT THE REPORTS SECTION.": HTAB 30: VTAB 21: PRINT "PRESS <ANY KEY> TO EXIT"
  269. 9065  HTAB 40: VTAB 22: GET X$: GOTO 5000
  270. 9070 TN% = TN%(I):DT$ = DT$(I):CN$ = CN$(I):AMT$ = AMT$(I):PY$ = PY$(I):AAD$ = AAD$(I):BAD$ = BAD$(I):CAD$ = CAD$(I):CTG$ = CTG$(I):ACT$ = ACT$(I):MEM$ = MEM$(I)
  271. 9200  REM  REDOS
  272. 9210  HTAB 16: VTAB 4: PRINT TN%
  273. 9220  HTAB 8: VTAB 6: PRINT DT$
  274. 9230  HTAB 58: VTAB 6: PRINT CN$
  275. 9240 AMT =  VAL(AMT$):TAMT = AMT: IF AMT <0  THEN TAMT = AMT * -1
  276. 9250 J = TAMT *100:Z$ =  STR$( INT(J +.01)): IF  LEN(Z$) = 1  THEN Z$ = "0" +Z$
  277. 9270  IF AMT <0  THEN  HTAB 58: VTAB 8: PRINT  INT(TAMT +.001)"." RIGHT$(Z$,2): GOTO 9290
  278. 9280  HTAB 58: VTAB 8: PRINT  INT(AMT +.001)"." RIGHT$(Z$,2)
  279. 9290  HTAB 18: VTAB 10: PRINT PY$
  280. 9300  HTAB 18: PRINT AAD$
  281. 9310  HTAB 18: PRINT BAD$
  282. 9320  HTAB 18: PRINT CAD$
  283. 9330  HTAB 7: VTAB 15: PRINT CTG$
  284. 9340  HTAB 24: VTAB 15: PRINT ACT$
  285. 9350  HTAB 69: VTAB 15: PRINT MEM$
  286. 9360  VTAB 17: CALL  -958
  287. 9370  HTAB 17: VTAB 19: PRINT "PRESS <T> TO EDIT TRANSACTION OR <ANY KEY> TO EXIT"
  288. 9380  HTAB 40: VTAB 21: GET X$
  289. 9390  IF X$ = "T"  OR X$ = "t"  THEN  VTAB 17: CALL  -958: GOTO 9410
  290. 9400  GOTO 5000
  291. 9410  HTAB 16: VTAB 4: PRINT TN%
  292. 9430  HTAB 8: VTAB 6: INPUT "";DT$
  293. 9435  IF  LEN(DT$) < >8  THEN DT$ = BDT$: HTAB 8: VTAB 6: PRINT DT$
  294. 9440  HTAB 58: VTAB 6: PRINT CN$
  295. 9445  IF  VAL(CN$) >0  THEN  HTAB 50: VTAB 6: PRINT "CHECK # ";CN$: GOTO 9460
  296. 9450  HTAB 50: VTAB 6: INPUT "CHECK # ";CN$
  297. 9460 OMT$ = AMT$
  298. 9470  HTAB 58: VTAB 8: INPUT "";AMT$
  299. 9480 AMT =  VAL(AMT$)
  300. 9490 J = AMT *100:Z$ =  STR$( INT(J +.01)): IF  LEN(Z$) = 1  THEN Z$ = "0" +Z$
  301. 9510  HTAB 58: VTAB 8: PRINT  INT(AMT +.001)"." RIGHT$(Z$,2)
  302. 9520  IF CN$ = "*"  THEN AMT$ = "-" +AMT$
  303. 9530  HTAB 18: VTAB 10: GOSUB 63000: LET PY$ = IN$
  304. 9535  IF  LEN(IN$) >35  THEN  HTAB 18: VTAB 10: PRINT " TOO LONG--35 SPACES MAX--TRY AGAIN "; SPC( 26): GET X$: HTAB 18: VTAB 10: CALL  -868: GOTO 9530
  305. 9540  HTAB 18: GOSUB 63000: LET AAD$ = IN$
  306. 9550  HTAB 18: GOSUB 63000: LET BAD$ = IN$
  307. 9560  HTAB 18: GOSUB 63000: LET CAD$ = IN$
  308. 9580 H = 7:V = 15: GOSUB 61000
  309. 9590  IF FF = 2  THEN FF = 0: GOTO 9410
  310. 9610  HTAB 24: VTAB 15: GOSUB 63000: LET ACT$ = IN$
  311. 9620  IF  LEN(IN$) >26  THEN  HTAB 24: VTAB 15: PRINT " TOO LONG--26 SPACES MAX--TRY AGAIN    MEMO:"; SPC( 12): GET X$: HTAB 24: VTAB 15: CALL  -868: HTAB 63: VTAB 15: PRINT "MEMO: ";MEM$: GOTO 9610
  312. 9700  HTAB 63: VTAB 15: PRINT "MEMO: ";MEM$
  313. 9710  HTAB 69: VTAB 15: GOSUB 63000: LET MEM$ = IN$
  314. 9715  IF  LEN(MEM$) >10  THEN  HTAB 69: VTAB 15: PRINT "10 SPACE MAX": VTAB 16: FOR X = 1 TO 79: PRINT "-";: NEXT : GET X$: HTAB 69: VTAB 15: CALL  -868: GOTO 9710
  315. 9720  VTAB 17: CALL  -958
  316. 9730  HTAB 17: VTAB 19: PRINT "PRESS <`> TO ENTER TRANSACTION OR <ANY KEY> TO EXIT"
  317. 9740  HTAB 40: VTAB 21: GET X$
  318. 9750  IF X$ = "`"  OR X$ = "~"  THEN 9800
  319. 9760  GOTO 5000
  320. 9800  REM  ENTER VARIABLES
  321. 9810 TN%(I) = TN%:DT$(I) = DT$:CN$(I) = CN$:AMT$(I) = AMT$:PY$(I) = PY$:AAD$(I) = AAD$:BAD$(I) = BAD$:CAD$(I) = CAD$:CTG$(I) = CTG$:ACT$(I) = ACT$:MEM$(I) = MEM$
  322. 9820  IF CN$ = WCN$  THEN WCN =  VAL(WCN$) +1:WCN$ =  STR$(WCN)
  323. 9830 BL = BL + VAL(OMT$) - VAL(AMT$)
  324. 9840 B = BL
  325. 9850  IF BL <0  THEN B = BL * -1
  326. 9860 A =  INT(B +.001):A$ =  STR$(A)
  327. 9870 J = B *100:B$ =  STR$( INT(J +.01)): IF  LEN(B$) = 1  THEN B$ = "0" +B$
  328. 9880 BL$ = A$ +"." + RIGHT$(B$,2)
  329. 9890  IF BL <0  THEN BL$ = "-" +BL$
  330. 9900  GOTO 5000
  331. 10000  REM  RECURRING TRANSACTIONS
  332. 10010  GOSUB 2200
  333. 10020  HOME 
  334. 10030  HTAB 31: VTAB 1: PRINT "RECURRING TRANSACTIONS"
  335. 10040  HTAB 2: VTAB 4: PRINT "REC. TRANSACTION CODE: "
  336. 10050  PRINT "--------------------------------------------------------------------------------"
  337. 10060  HTAB 2: VTAB 6: PRINT "DUE DATE:"
  338. 10070  HTAB 47: VTAB 6: PRINT "FREQUENCY:"
  339. 10080  HTAB 49: VTAB 8: PRINT "AMOUNT $ "
  340. 10090  HTAB 10: VTAB 10: PRINT "PAY TO:"
  341. 10100  HTAB 2: PRINT "ADDRESS LINE 1:"
  342. 10110  HTAB 2: PRINT "ADDRESS LINE 2:"
  343. 10120  HTAB 2: PRINT "ADDRESS LINE 3:"
  344. 10130  HTAB 2: VTAB 15: PRINT "CATEGORY:"
  345. 10140  HTAB 38: VTAB 15: PRINT "ACT#:"
  346. 10150  PRINT "--------------------------------------------------------------------------------"
  347. 10160  HTAB 9: VTAB 19: PRINT "ENTER REC.TRANSACTION CODE, <RTN> TO SEE LIST, OR <ESC> TO EXIT"
  348. 10170  HTAB 69: VTAB 23: PRINT TM$
  349. 10180 IN$ = ""
  350. 10190  HTAB 39: VTAB 21: PRINT IN$;
  351. 10200  GET X$
  352. 10210  IF X$ =  CHR$(13)  THEN  GOSUB 18000: GOTO 10000
  353. 10220  IF X$ =  CHR$(27)  THEN IN$ = "": GOTO 4000
  354. 10222  IF X$ =  CHR$(8)  AND  LEN(IN$) = 1  THEN 10180
  355. 10225  IF X$ =  CHR$(8)  AND  LEN(IN$) = 2  THEN IN$ =  LEFT$(IN$, LEN(IN$) -1): HTAB 40: GOTO 10200
  356. 10226  IF X$ =  CHR$(21)  OR X$ =  CHR$(8)  THEN 10200
  357. 10227  IF X$ =  CHR$(10)  OR X$ =  CHR$(11)  THEN 10200
  358. 10228 IN$ = IN$ +X$
  359. 10230  IF  LEN(IN$) = 3  THEN COD$ = IN$: GOTO 10250
  360. 10240  GOTO 10190
  361. 10250  HTAB 39: VTAB 21: PRINT COD$
  362. 10255  FOR R = 1 TO 40
  363. 10270  IF COD$ = COD$(R)  THEN 10330
  364. 10275  IF COD$(R) = "\\\"  THEN W = R
  365. 10280  NEXT 
  366. 10285 R = W
  367. 10290  VTAB 17: CALL  -958
  368. 10300  HTAB 10: VTAB 18: PRINT "PRESS <E> TO CREATE NEW RECURRING TRANSACTION OR <ANY KEY> TO EXIT"
  369. 10305  HTAB 40: VTAB 20
  370. 10310  GET X$: IF X$ = "E"  OR X$ = "e"  THEN 11000
  371. 10320  GOTO 10000
  372. 10330  PRINT D$;"OPEN /RAM/RECUR.TRANS,L$96"
  373. 10340  PRINT D$;"READ /RAM/RECUR.TRANS,R";R
  374. 10350  INPUT "";COD$,DD$,FRQ$,AMT$
  375. 10360  VTAB 14: GOSUB 63000: LET PAY$ = IN$
  376. 10370  VTAB 14: GOSUB 63000: LET AAD$ = IN$
  377. 10380  VTAB 14: GOSUB 63000: LET BAD$ = IN$
  378. 10390  VTAB 14: GOSUB 63000: LET CAD$ = IN$
  379. 10400  VTAB 14: INPUT "";CTG$,ACT$
  380. 10410  PRINT D$;"CLOSE /RAM/RECUR.TRANS"
  381. 10420  HTAB 26: VTAB 4: PRINT COD$
  382. 10430  HTAB 12: VTAB 6: PRINT DD$
  383. 10440  HTAB 58: VTAB 6: PRINT FRQ$
  384. 10450 AMT =  VAL(AMT$)
  385. 10460 J = AMT *100:Z$ =  STR$( INT(J +.01)): IF  LEN(Z$) = 1  THEN Z$ = "0" +Z$
  386. 10470  HTAB 58: VTAB 8: PRINT  INT(AMT +.001);"."; RIGHT$(Z$,2)
  387. 10480  HTAB 18: VTAB 10: PRINT PAY$
  388. 10490  HTAB 18: PRINT AAD$
  389. 10500  HTAB 18: PRINT BAD$
  390. 10510  HTAB 18: PRINT CAD$
  391. 10520  HTAB 12: VTAB 15: PRINT CTG$
  392. 10530  HTAB 38: VTAB 15: PRINT "ACT#: "
  393. 10540  HTAB 44: VTAB 15: PRINT ACT$
  394. 10550  VTAB 17: CALL  -958
  395. 10560  HTAB 17: VTAB 19: PRINT "PRESS <T> TO EDIT TRANSACTION OR <ANY KEY> TO EXIT"
  396. 10570  HTAB 40: VTAB 21: GET X$
  397. 10580  IF X$ = "T"  OR X$ = "t"  THEN 11000
  398. 10590  GOTO 10000
  399. 11000  REM  INPUTS
  400. 11010  HTAB 26: VTAB 4: PRINT COD$
  401. 11020  IF COD$ = COD$(R)  THEN 11070
  402. 11030  GOTO 11080
  403. 11070  HTAB 26: VTAB 4: INPUT "";COD$:FQ = 1
  404. 11075  IF  LEN(COD$) < >3  THEN COD$ = "\\\":FQ = 1: HTAB 26: VTAB 4: PRINT COD$
  405. 11080  HTAB 12: VTAB 6: INPUT "";DD$
  406. 11085  IF  LEN(DD$) < >8  THEN DD$ = "irregular":FRQ$ = "0": HTAB 12: VTAB 6: PRINT DD$: HTAB 46: VTAB 6: PRINT " FREQUENCY: ";FRQ$: GOTO 11100
  407. 11090  HTAB 47: VTAB 6: INPUT "FREQUENCY: ";FRQ$
  408. 11100  HTAB 58: VTAB 8: INPUT "";AMT$
  409. 11110 AMT =  VAL(AMT$)
  410. 11120 J = AMT *100:Z$ =  STR$( INT(J +.01)): IF  LEN(Z$) = 1  THEN Z$ = "0" +Z$
  411. 11130  HTAB 58: VTAB 8: PRINT  INT(AMT +.001);"."; RIGHT$(Z$,2)
  412. 11140  HTAB 18: VTAB 10: GOSUB 63000: LET PAY$ = IN$
  413. 11145  IF  LEN(IN$) >25  THEN  HTAB 18: VTAB 10: PRINT " TOO LONG--25 SPACES MAX--TRY AGAIN "; SPC( 26): GET X$: HTAB 18: VTAB 10: CALL  -868: GOTO 11140
  414. 11150  HTAB 18: GOSUB 63000: LET AAD$ = IN$
  415. 11160  HTAB 18: GOSUB 63000: LET BAD$ = IN$
  416. 11170  HTAB 18: GOSUB 63000: LET CAD$ = IN$
  417. 11180 H = 12:V = 15: GOSUB 61000
  418. 11190  IF FF = 2  THEN FF = 0: GOTO 11000
  419. 11300  HTAB 38: VTAB 15: PRINT "ACT#: "
  420. 11310  HTAB 44: VTAB 15: GOSUB 63000: LET ACT$ = IN$
  421. 11315  IF  LEN(ACT$) >26  THEN  HTAB 44: VTAB 15: PRINT " TOO LONG--26 SPACES MAX--TRY AGAIN  ": VTAB 16: FOR X = 1 TO 78: PRINT "-";: NEXT : GET X$: HTAB 44: VTAB 15: CALL  -868: GOTO 11310
  422. 11320  VTAB 17: CALL  -958
  423. 11330  HTAB 17: VTAB 19: PRINT "PRESS <`> TO ENTER TRANSACTION OR <ANY KEY> TO EXIT"
  424. 11340  HTAB 40: VTAB 21: GET X$
  425. 11350  IF X$ = "`"  OR X$ = "~"  THEN 11370
  426. 11360 FQ = 0: GOTO 10000
  427. 11370  IF FQ = 1  THEN FQ = 0: GOTO 11400
  428. 11375  FOR R = 1 TO 40
  429. 11380  IF COD$(R) = "\\\"  THEN 11400
  430. 11390  NEXT 
  431. 11400 COD$(R) = COD$
  432. 12000  REM  WRITING
  433. 12010  PRINT D$;"OPEN /RAM/RECUR.TRANS,L$96"
  434. 12020  PRINT D$;"WRITE /RAM/RECUR.TRANS,R";R
  435. 12030  PRINT COD$
  436. 12040  PRINT DD$
  437. 12050  PRINT FRQ$
  438. 12060  PRINT AMT$
  439. 12065  IF F = 1  THEN PAY$ =  LEFT$(PY$,26): REM  F NEW DUE DATE
  440. 12070  PRINT PAY$
  441. 12080  PRINT AAD$
  442. 12090  PRINT BAD$
  443. 12100  PRINT CAD$
  444. 12110  PRINT CTG$
  445. 12120  PRINT ACT$
  446. 12130  PRINT D$;"CLOSE /RAM/RECUR.TRANS"
  447. 12135  IF F = 1  THEN F = 0: GOTO 5000
  448. 12140 FL = 1: GOSUB 16000: GOTO 10000
  449. 15000  REM  LOAD RECUR.TRANS
  450. 15010  PRINT D$;"OPEN /RAM/RECUR.TRANS,L$96"
  451. 15020  FOR R = 1 TO 40
  452. 15030  PRINT D$;"READ /RAM/RECUR.TRANS,R";R
  453. 15040  INPUT "";COD$
  454. 15050  INPUT "";DD$,FRQ$,AMT$
  455. 15060  LET COD$(R) = COD$
  456. 15070  GOSUB 63000: LET PAY$(R) = IN$
  457. 15072  IF  LEN(DD$) <8  THEN 15080
  458. 15073  IF  RIGHT$(BDT$,2) < RIGHT$(DD$,2)  THEN 15080
  459. 15075  IF BDT$ =  >DD$  THEN PAY$(R) = PAY$(R) +"^":FO = 1
  460. 15080  NEXT 
  461. 15090  PRINT D$;"CLOSE /RAM/RECUR.TRANS"
  462. 15100  RETURN 
  463. 16000  REM  ALPHABETICAL ORDER
  464. 16005  GOSUB 15000
  465. 16007 K = 0
  466. 16010  FOR AL = 65 TO 92
  467. 16020  FOR R = 1 TO 40
  468. 16060  IF  ASC(COD$(R)) = AL  THEN TCOD$(K) = COD$(R):TPAY$(K) = PAY$(R):K = K +1
  469. 16070  IF  ASC(COD$(R)) = AL +32  THEN TCOD$(K) = COD$(R):TPAY$(K) = PAY$(R):K = K +1
  470. 16080  NEXT R
  471. 16090  NEXT AL
  472. 16100 K = 0
  473. 16110  IF FL = 1  THEN FL = 0: RETURN 
  474. 17000  REM  LIST FOR OVERDUE TRANSACTIONS
  475. 17010  HOME 
  476. 17020  HTAB 21: VTAB 1: PRINT "---OVERDUE TRANSACTIONS ARE HIGHLIGHTED---"
  477. 17030  VTAB 3
  478. 17040  FOR K = 0 TO 19
  479. 17050  PRINT TCOD$(K);"-   ";
  480. 17060  IF  RIGHT$(TPAY$(K),1) = "^"  THEN  INVERSE : PRINT TPAY$(K): NORMAL : GOTO 17080
  481. 17070  PRINT TPAYS$(K)
  482. 17080  NEXT 
  483. 17090  VTAB 3
  484. 17100  FOR K = 20 TO 39
  485. 17110  HTAB 40
  486. 17120  PRINT TCOD$(K);"-   ";
  487. 17130  IF  RIGHT$(TPAY$(K),1) = "^"  THEN  INVERSE : PRINT TPAY$(K): NORMAL : GOTO 17150
  488. 17140  PRINT TPAY$(K)
  489. 17150  NEXT 
  490. 17160  HTAB 28: VTAB 23: PRINT "PRESS ANY KEY TO CONTINUE"
  491. 17170 K = 0
  492. 17180  GET X$
  493. 17190  RETURN 
  494. 18000  REM  PRINT RECUR.TRANS.LIST
  495. 18010  HOME 
  496. 18020  HTAB 26: VTAB 1: PRINT "---RECURRING TRANSACTION LIST---"
  497. 18030  VTAB 3
  498. 18040  FOR K = 0 TO 19
  499. 18050  PRINT TCOD$(K);"-   ";
  500. 18060  IF  RIGHT$(TPAY$(K),1) = "^"  THEN TPAY$(K) =  LEFT$(TPAY$(K), LEN(TPAY$(K)) -1)
  501. 18070  PRINT TPAYS$(K)
  502. 18080  NEXT 
  503. 18090  VTAB 3
  504. 18100  FOR K = 20 TO 39
  505. 18110  HTAB 40
  506. 18120  PRINT TCOD$(K);"-   ";
  507. 18130  IF  RIGHT$(TPAY$(K),1) = "^"  THEN TPAY$(K) =  LEFT$(TPAY$(K), LEN(TPAY$(K)) -1)
  508. 18140  PRINT TPAY$(K)
  509. 18150  NEXT 
  510. 18160  HTAB 28: VTAB 23: PRINT "PRESS ANY KEY TO CONTINUE"
  511. 18170 K = 0
  512. 18180  GET X$
  513. 18190  RETURN 
  514. 20000  REM  CATEGORIES
  515. 20010  PRINT D$;"CHAIN /RAM/CAT"
  516. 22000  REM  LOAD CAT.DATA
  517. 22010  PRINT D$;"OPEN /RAM/CAT.DATA,L$20"
  518. 22020  FOR R = 1 TO 40
  519. 22030  PRINT D$;"READ /RAM/CAT.DATA,R";R
  520. 22034  INPUT CG$
  521. 22035  IF F = 1  THEN 22037
  522. 22036  IF  LEN(CG$) <1  THEN UN = R -1:F = 1
  523. 22037  INPUT BG$
  524. 22040 CG$(R) = CG$
  525. 22045 BG$(R) = BG$
  526. 22050  NEXT 
  527. 22055 F = 0
  528. 22060  PRINT D$;"CLOSE /RAM/CAT.DATA"
  529. 23000  REM  RT.CODE.DATA
  530. 23010  PRINT D$;"OPEN /RAM/RT.CODE.DATA,L$28"
  531. 23020  FOR R = 0 TO 39
  532. 23030  PRINT D$;"READ /RAM/RT.CODE.DATA,R";R
  533. 23035  INPUT TCOD$
  534. 23037  INPUT TPAY$
  535. 23040 TCOD$(R) = TCOD$
  536. 23045 TPAY$(R) = TPAY$
  537. 23050  NEXT 
  538. 23060  PRINT D$;"CLOSE /RAM/RT.CODE.DATA"
  539. 23070  RETURN 
  540. 30000  REM  REPORTS
  541. 30010  PRINT D$;"CHAIN /RAM/RPT"
  542. 31000  REM  LIST
  543. 31010  PRINT D$;"CHAIN /RAM/LP,@20000"
  544. 32000  REM  BALANCE
  545. 32010  PRINT D$;"CHAIN /RAM/BAL"
  546. 33000  REM  PRINT CHECKS
  547. 33010  PRINT D$;"CHAIN /RAM/LP,@10000"
  548. 35000  REM  BUDGETS
  549. 35010  PRINT D$;"CHAIN /RAM/BUD"
  550. 40000  REM  CALCULATOR
  551. 40010  PRINT D$;"CHAIN /RAM/CALC"
  552. 45000  REM  LOAD NEW DATA DISK
  553. 45010  PRINT D$;"OPEN /RAM/DATA.LOC"
  554. 45020  PRINT D$;"READ /RAM/DATA.LOC"
  555. 45030  INPUT PD$
  556. 45040  PRINT D$;"CLOSE /RAM/DATA.LOC"
  557. 45050  HOME 
  558. 45060  HTAB 18: VTAB 3: PRINT "YOU WILL LOSE ANY UNSAVED DATA IF YOU DO THIS"
  559. 45070  HTAB 31: VTAB 7: PRINT "YOUR DATA PATH IS"
  560. 45080 H =  INT(40 -.5 *( LEN(PD$)))
  561. 45090  HTAB H: VTAB 8: PRINT PD$
  562. 45100  HTAB 14: VTAB 10
  563. 45110  PRINT "LOAD YOUR DATA FROM T<H>IS PATH, <F>IND ANOTHER PATH,"
  564. 45120  HTAB 28: VTAB 11: PRINT "OR RETURN TO <M>AIN MENU?"
  565. 45130  HTAB 40: VTAB 12: GET X$
  566. 45140  IF X$ = "H"  OR X$ = "h"  THEN P1$ = PD$: GOTO 45260
  567. 45150  IF X$ = "F"  OR X$ = "f"  THEN 45200
  568. 45160  IF X$ = "M"  OR X$ = "m"  THEN 4000
  569. 45170  IF X$ < >"m"  THEN 45000
  570. 45200  HOME 
  571. 45210  HTAB 22: VTAB 6
  572. 45220  PRINT "ENTER THE NEW PATHNAME FOR YOUR DATA"
  573. 45230  HTAB 10: VTAB 8
  574. 45240  INPUT "/";X$
  575. 45245  IF  LEN(X$) <1  THEN 45000
  576. 45250 P1$ = "/" +X$ +"/"
  577. 45260  HOME : HTAB 29: VTAB 12
  578. 45270  PRINT "LOADING YOUR DATA FROM"
  579. 45280 H =  INT(40 -.5 *( LEN(P1$)))
  580. 45290  HTAB H: VTAB 13: PRINT P1$
  581. 45500  PRINT D$;"CHAIN /RAM/BASIC.COPY.2,@100"
  582. 50000  REM  NEW DATA DISK
  583. 50005  HOME 
  584. 50010  HTAB 23: VTAB 1: PRINT "---INSTRUCTIONS TO MAKE A NEW DATA DISK---"
  585. 50020  HTAB 10: VTAB 5: PRINT "1)  COPY YOUR ORIGINAL DATA DISK TO A NEW DISK"
  586. 50030  HTAB 10: PRINT "2)  COPY THE FOLLOWING FILES FR0M YOUR OLD DATA DISK:"
  587. 50040  HTAB 20: PRINT "CAT.DATA"
  588. 50070  HTAB 20: PRINT "RECUR.TRANS"
  589. 50080  HTAB 20: PRINT "RT.CODE.DATA"
  590. 50100  HTAB 10: PRINT "3)  GOTO EDIT ONGOING DATA"
  591. 50110  HTAB 10: PRINT "4)  ENTER YOUR YEAR END BALANCE AS A DEPOSIT IN TRANSACTION #1"
  592. 50120  HTAB 34: PRINT "FOR NEW YEAR"
  593. 50150  HTAB 15: VTAB 15: PRINT "PRESS <M> FOR MAIN MENU OR <T> TO EDIT ONGOING DATA"
  594. 50200  HTAB 40: VTAB 17: GET X$
  595. 50210  IF X$ = "M"  OR X$ = "m"  THEN 4000
  596. 50220  IF X$ = "T"  OR X$ = "t"  THEN 51000
  597. 50230  IF X$ < >"T"  THEN 50200
  598. 51000  REM  EDIT ONGOING DATA
  599. 51010  HOME 
  600. 51020  HTAB 27: VTAB 1: PRINT "---EDITING ONGOING DATA---"
  601. 51030  HTAB 6: VTAB 5: PRINT "IN THIS SECTION YOU MAY CHANGE YOUR B<A>LANCE, YOUR <C>HECK NUMBER,"
  602. 51040  HTAB 13: VTAB 6: PRINT " YOUR RECONCILED <B>ALANCE, OR RETURN TO <M>AIN MENU"
  603. 51050  HTAB 40: VTAB 7: GET X$
  604. 51060  IF X$ = "A"  OR X$ = "a"  THEN 52000
  605. 51070  IF X$ = "C"  OR X$ = "c"  THEN 53000
  606. 51080  IF X$ = "B"  OR X$ = "b"  THEN 54000
  607. 51090  IF X$ = "M"  OR X$ = "m"  THEN 4000
  608. 51100  IF X$ < >"M"  THEN 51000
  609. 52000  REM  CHANGE BALANCE
  610. 52010  HOME 
  611. 52015  HTAB 5: VTAB 4: INVERSE : PRINT "WARNING, THIS SHOULD ONLY BE DONE BEFORE ENTERING NEW DATA OR AFTER A SAVE"
  612. 52016  HTAB 31: VTAB 5: PRINT "USE <M> TO ESCAPE": NORMAL 
  613. 52020  HTAB 23: VTAB 8: PRINT "YOUR CURRENT BALANCE IS $ ";BL$
  614. 52030  HTAB 23: VTAB 10: PRINT "ENTER YOUR NEW BALANCE $ "
  615. 52040  HTAB 48: VTAB 10: INPUT "";NZ$
  616. 52044  IF NZ$ = "M"  OR NZ$ = "m"  THEN 51000
  617. 52046 BL$ = NZ$
  618. 52050 BL =  VAL(BL$)
  619. 52060 A =  INT(BL +.001):A$ =  STR$(A)
  620. 52070 J = BL *100:B$ =  STR$( INT(J +.01)): IF  LEN(B$) = 1  THEN B$ = "0" +B$
  621. 52080 BL$ = A$ +"." + RIGHT$(B$,2)
  622. 52090 F = 1: GOSUB 55500
  623. 52100  HTAB 26: VTAB 19: PRINT "YOUR NEW BALANCE IS $ ";BL$
  624. 52105  HTAB 40: VTAB 20: GET X$
  625. 52110  GOTO 51000
  626. 53000  REM  CHANGE CHECK NUMBER
  627. 53010  HOME 
  628. 53015  HTAB 5: VTAB 4: INVERSE : PRINT "WARNING, THIS SHOULD ONLY BE DONE BEFORE ENTERING NEW DATA OR AFTER A SAVE"
  629. 53016  HTAB 31: VTAB 5: PRINT "USE <M> TO ESCAPE": NORMAL 
  630. 53020  HTAB 22: VTAB 8: PRINT "YOUR CURRENT CHECK # IS    # ";WCN$
  631. 53030  HTAB 22: VTAB 10: PRINT "ENTER YOUR NEW CHECK #    # "
  632. 53040  HTAB 50: VTAB 10: INPUT "";NZ$
  633. 53044  IF NZ$ = "M"  OR NZ$ = "m"  THEN 51000
  634. 53046 WCN$ = NZ$
  635. 53090 F = 1: GOSUB 55500
  636. 53100  HTAB 25: VTAB 19: PRINT "YOUR NEW CHECK # IS    # ";WCN$
  637. 53105  HTAB 40: VTAB 20: GET X$
  638. 53110  GOTO 51000
  639. 54000  REM  CHANGE RECONCILIATION BALANCE
  640. 54010  HOME 
  641. 54020  HTAB 2: VTAB 4: INVERSE : PRINT "WARNING, THIS SHOULD ONLY BE DONE BEFORE BALANCING OR AFTER A SAVING A BALANCE"
  642. 54025  HTAB 31: VTAB 5: PRINT "USE <M> TO ESCAPE": NORMAL 
  643. 54030  PRINT D$;"OPEN /RAM/RECON.BAL.DATA"
  644. 54040  PRINT D$;"READ /RAM/RECON.BAL.DATA"
  645. 54050  INPUT PRB$
  646. 54060  PRINT D$;"CLOSE /RAM/RECON.BAL.DATA"
  647. 54070  HTAB 17: VTAB 8: PRINT "YOUR CURRENT RECONCILIATION BALANCE IS $ ";PRB$
  648. 54080  HTAB 17: VTAB 10: PRINT "ENTER YOUR NEW RECONCILIATION BALANCE $ "
  649. 54090  HTAB 57: VTAB 10: INPUT "";NZ$
  650. 54094  IF NZ$ = "M"  OR NZ$ = "m"  THEN 51000
  651. 54096 PRB$ = NZ$
  652. 54100 PRB =  VAL(PRB$)
  653. 54110 J = PRB *100:Z$ =  STR$( INT(J +.01)): IF  LEN(Z$) = 1  THEN Z$ = "0" +Z$
  654. 54120 PRB$ =  STR$( INT(PRB +.001)) +"." + RIGHT$(Z$,2)
  655. 54130  PRINT D$;"OPEN /RAM/RECON.BAL.DATA"
  656. 54140  PRINT D$;"WRITE /RAM/RECON.BAL.DATA"
  657. 54150  PRINT PRB$
  658. 54160  PRINT D$;"CLOSE /RAM/RECON.BAL.DATA"
  659. 54170  HTAB 20: VTAB 19: PRINT "YOUR NEW RECONCILIATION BALANCE IS $ ";PRB$
  660. 54180  HTAB 40: VTAB 20: GET X$
  661. 54200  GOTO 51000
  662. 55000  REM  SAVE
  663. 55002  PRINT D$;"OPEN /RAM/DATA.LOC"
  664. 55004  PRINT D$;"READ /RAM/DATA.LOC"
  665. 55006  INPUT PD$
  666. 55008  PRINT D$;"CLOSE /RAM/DATA.LOC"
  667. 55010  HOME 
  668. 55015  HTAB 31: VTAB 2: PRINT "YOUR DATA PATH IS"
  669. 55016 H =  INT(40 -.5 *( LEN(PD$)))
  670. 55017  HTAB H: VTAB 3: PRINT PD$
  671. 55020  HTAB 15: VTAB 6: PRINT "SAVE YOUR DATA TO T<H>IS PATH, <F>IND ANOTHER PATH,"
  672. 55025  HTAB 30: VTAB 7: PRINT "OR GO TO <M>AIN MENU?"
  673. 55030  HTAB 40: VTAB 9: GET X$
  674. 55040  IF X$ = "H"  OR X$ = "h"  THEN P2$ = PD$: GOTO 55460
  675. 55050  IF X$ = "F"  OR X$ = "f"  THEN 55400
  676. 55055  IF X$ = "M"  OR X$ = "m"  THEN 4000
  677. 55060  IF X$ < >"m"  THEN 55000
  678. 55400  HOME 
  679. 55410  HTAB 22: VTAB 6
  680. 55420  PRINT "ENTER THE NEW PATHNAME FOR YOUR DATA"
  681. 55430  HTAB 10: VTAB 8
  682. 55440  INPUT "/";X$
  683. 55445  IF  LEN(X$) <1  THEN 55000
  684. 55450 P2$ = "/" +X$ +"/"
  685. 55460  HOME : HTAB 30: VTAB 12
  686. 55470  PRINT "SAVING YOUR DATA TO"
  687. 55480 H =  INT(40 -.5 *( LEN(P2$)))
  688. 55490  HTAB H: VTAB 13: PRINT P2$
  689. 55500  REM  SAVE
  690. 55510  PRINT D$;"OPEN /RAM/ONGOING.DATA"
  691. 55520  PRINT D$;"WRITE /RAM/ONGOING.DATA"
  692. 55530  PRINT WT%: PRINT BL$: PRINT WCN$
  693. 55540  PRINT D$;"CLOSE /RAM/ONGOING.DATA"
  694. 55550  IF F = 1  THEN F = 0: RETURN 
  695. 56000  PRINT D$;"OPEN /RAM/MAIN.DATA,L$96"
  696. 56010  FOR I = 0 TO 59
  697. 56020 TN = TN%(I)
  698. 56030  PRINT D$;"WRITE /RAM/MAIN.DATA,R";TN
  699. 56040 TN% = TN%(I): PRINT TN%
  700. 56050 DT$ = DT$(I): PRINT DT$
  701. 56060 CN$ = CN$(I): PRINT CN$
  702. 56070 AMT$ = AMT$(I): PRINT AMT$
  703. 56080 PY$ =  LEFT$(PY$(I),25): PRINT PY$
  704. 56085 R$ = " ": PRINT R$
  705. 56090 CTG$ = CTG$(I): PRINT CTG$
  706. 56100 MEM$ = MEM$(I): PRINT MEM$
  707. 56110  NEXT 
  708. 56120  PRINT D$;"CLOSE /RAM/MAIN.DATA"
  709. 56500 FTN% = WT%
  710. 57000  REM  SAVE RT.CODE.DATA
  711. 57010  PRINT D$;"OPEN /RAM/RT.CODE.DATA,L$28"
  712. 57020  FOR I = 0 TO 39
  713. 57030  PRINT D$;"WRITE /RAM/RT.CODE.DATA,R";I
  714. 57040  LET TCOD$ = TCOD$(I): PRINT TCOD$
  715. 57050  LET TPAY$ = TPAY$(I): PRINT TPAY$
  716. 57060  NEXT 
  717. 57070  PRINT D$;"CLOSE /RAM/RT.CODE.DATA"
  718. 57600  IF FS = 1  THEN FS = 0: PRINT D$;"CHAIN /RAM/DATA.SAVER"
  719. 57999  GOTO 4005
  720. 58000  REM  QUIT
  721. 58010  HOME 
  722. 58020  HTAB 22: VTAB 5: PRINT "THIS IS THE LAST CHANCE TO SAVE DATA"
  723. 58030  HTAB 16: VTAB 8: PRINT "WOULD YOU LIKE TO <Q>UIT OR RETURN TO <M>AIN MENU?"
  724. 58040  HTAB 40: VTAB 10: GET X$
  725. 58050  IF X$ = "Q"  OR X$ = "q"  THEN 58100
  726. 58060  IF X$ = "M"  OR X$ = "m"  THEN 4000
  727. 58070  IF X$ < >"m"  THEN 58000
  728. 58100  PRINT D$;"BYE"
  729. 60000  REM  GET ROUTINE
  730. 60010 IN$ = ""
  731. 60020  HTAB H: VTAB V
  732. 60030  IF FF = 1  THEN FF = 0: HTAB H: VTAB V: PRINT IN$;" ": GOTO 60050
  733. 60040  PRINT IN$
  734. 60050 HH = H + LEN(IN$): HTAB HH: VTAB V
  735. 60060  GET X$
  736. 60070  IF X$ =  CHR$(13)  THEN  RETURN 
  737. 60080  IF X$ =  CHR$(10)  OR X$ =  CHR$(11)  THEN 60020
  738. 60090  IF X$ =  CHR$(21)  THEN X$ =  CHR$(32)
  739. 60100  IF X$ =  CHR$(8)  OR X$ =  CHR$(127)  THEN FF = 1: IF  LEN(IN$) <2  THEN 60000
  740. 60110  IF FF = 1  THEN IN$ =  LEFT$(IN$, LEN(IN$) -1): GOTO 60020
  741. 60120  IF X$ =  CHR$(27)  THEN FF = 2: RETURN 
  742. 60130 IN$ = IN$ +X$
  743. 60140  GOTO 60020
  744. 61000  REM  CATEGORY ROUTINE
  745. 61010 IN$ = ""
  746. 61020  HTAB H +K: VTAB V: PRINT  SPC( 10)
  747. 61030  HTAB H +K: VTAB V: PRINT IN$;
  748. 61040  GET X$
  749. 61050  IF X$ =  CHR$(11)  THEN U = U -1: GOTO 61500
  750. 61060  IF X$ =  CHR$(10)  THEN U = U +1: GOTO 61500
  751. 61070  IF X$ =  CHR$(13)  THEN CTG$ = IN$: GOTO 61120
  752. 61080  IF X$ =  CHR$(21)  OR X$ =  CHR$(32)  THEN 61040
  753. 61090  IF X$ =  CHR$(8)  OR X$ =  CHR$(127)  THEN 61000
  754. 61100  IF X$ =  CHR$(27)  THEN FF = 2:U = 0:K = 0: RETURN 
  755. 61110 IN$ = IN$ +X$: GOTO 61130
  756. 61120  HTAB H: VTAB V: PRINT CTG$:U = 0:K = 0: RETURN 
  757. 61130  FOR I = 1 TO 40
  758. 61140  IF CG$(I) = N$  THEN 61170
  759. 61150  IF IN$ =  LEFT$(CG$(I), LEN(IN$))  THEN K = K +1:Z$ = CG$(I)
  760. 61160  NEXT 
  761. 61170  IF K = 1  THEN K = 0:CTG$ = Z$: GOTO 61120
  762. 61180  IF K = 0  THEN 61010
  763. 61190 K = 0: GOTO 61020
  764. 61500 K = 0
  765. 61510  IF U >UN  THEN U = 1
  766. 61520  IF U <1  THEN U = UN
  767. 61530 IN$ = CG$(U)
  768. 61540  GOTO 61020
  769. 62000  REM  INPUT ANYTHING
  770. 62010  LET IN$ = "X"
  771. 62020  FOR J = 768 TO 790
  772. 62030  READ I
  773. 62040  POKE J,I
  774. 62050  NEXT J
  775. 62060  DATA  162,0,32,117,253,160,2,138,145,105,200,169,0,145,105,200,169,2,145,105,76,57,213
  776. 62070  RETURN 
  777. 63000  REM  CALL ANYTHING
  778. 63010  CALL 768
  779. 63020 IN$ =  MID$ (IN$,1)
  780. 63030  RETURN